package com.zhuiyun.project.api.video.publishVideo.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Transient;
import javax.validation.constraints.NotBlank;
import java.util.Date;

/**
 * @ClassName PublishVideoModel
 * @Description 上传视频模型类
 * @Author qsh
 * @Date 2023/12/15 9:48
 **/
@Data
public class PublishVideoModel {
    /**
     * 视频主键ID
     */
    private Integer vId;

    /**
     * 视频编号
     */
    private String videoId;

    /**
     * 发布者id
     */
//    @NotBlank(message = "发布者id不能为空")
    @ApiModelProperty("发布者id")
    private Integer userId;

    /**
     * 发布账号
     */
    @NotBlank(message = "发布账号不能为空")
    private String userAccount;

    /**
     * 音频id
     */
    private Integer audioId;

    /**
     * 视频文案
     */
    private String videoDesc;

    /**
     * 话题
     */
    private String videoTopic;

    /**
     * 视频回显ID
     */
//    @NotBlank(message = "视频回显ID不能为空")
    @ApiModelProperty("视频回显ID")
    private Integer videoNumber;

    /**
     * 视频秒数
     */
    private Integer videoSeconds;

    /**
     * 视频宽度
     */
    private Integer videoWidth;

    /**
     * 视频高度
     */
    private Integer videoHeight;

    /**
     * 视频封面回显ID
     */
//    @NotBlank(message = "视频封面回显ID不能为空")
    @ApiModelProperty("视频封面回显ID")
    private Integer coverNumber;

    /**
     * 审核状态
     */
    private String reviewStatus;

    /**
     * 备注
     */
    private String VideoReason;

    /**
     * 审核时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    private Date auditTime;

    /**
     * 起始审核时间
     */
    @Transient
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern="yyyy-MM-dd")//DateTimeFormat 是入参格式化；
    private Date auditStartTime;

    /**
     * 结束审核时间
     */
    @Transient
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    private Date auditEndTime;

    /**
     * 点赞数
     */
    private Long likeCounts;

    /**
     * 收藏数
     */
    private Long collectCounts;

    /**
     * 评论数
     */
    private Long commentCounts;

    /**
     * 浏览量
     */
    private Long videoViews;

    /**
     * 分享量
     */
    private Long shareVolume;

    /**
     * 下载量
     */
    private Long download;

    /**
     * 创建时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    private Date creationTime;

    /**
     * 起始上传时间
     */
    @Transient
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern="yyyy-MM-dd")//DateTimeFormat 是入参格式化；
    private Date UploadStartTime;

    /**
     * 结束上传时间
     */
    @Transient
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    private Date UploadEndTime;

    /**
     * 视频状态（发布、隐藏
     */
    @NotBlank(message = "视频状态不能为空")
    private String videoStatus;

    /**
     * 逻辑删除（0：隐藏，1：显示
     */
    private Integer isDelete;

    /**
     * 视频绑定状态（0：未推荐，1：已推荐，2：已下架
     */
    private Integer bindVideo;

    /**
     * 视频绑定标识（a：运营，u：用户
     */
    private String identifying;
}
